package gdut.jmxywz.service;

import gdut.jmxywz.util.PageModel;

import java.util.List;
import java.util.Map;

import javax.servlet.ServletContext;

public interface CommonService {
	
	//增加
	public boolean saveObject(Object obj);
	
	//修改
	public boolean updateObject(Object obj);
	
	//删除
	public boolean deleteObject(Object obj);
	
	//主键为int型按主键查询
	public Object findByIntId(int id, String className);
	
	
	//主键为string型按主键查询
	
	public Object findByStringId(String id,String className);
	
	//按hql语句查询，parm是hql语句中“?”号的参数数组
    @SuppressWarnings("unchecked")
	public List findListByHql(String hql ,Object[]parem);
    
    //按hql分页查询，parem是hql语句中的“?”号参数数组，currentPage是当前页数，pageSize是每页显示的页数，
    //nextPage是下一个跳转页（action或jsp）,search_parameter是检索时用于带参数的String字符串
    public PageModel findPage(String hql ,Object[]parem,int currentPage,int pageSize,String nextPage,String search_parameter);

    //按hql条件查询,objectName 是要查询的实体名，condition为查询条件，value 为查询属性值，orderBy为排序方式，
    @SuppressWarnings("unchecked")
	public List findObjectByHql(String ObjectName,String []condition,String []value,String orderBy);
    
    //按list进行分页，orderBy为排序方式
    @SuppressWarnings("unchecked")
	public PageModel splitByList(List list,int currentPage,int pageSize,String nextPage,String search_parameter);
    
    /**  
     * 生成静态页面方法  
     * @param context ServletContext  
     * @param data 一个Map的数据结果集  
     * @param templatePath ftl模版路径  
     * @param targetHtmlPath 生成静态页面的路径  
     */ 
    public void  createHtml(ServletContext context,Map<String, Object> data, String templatePath ,String targetHtmlPath);
    

    //判断文件是否存在
    public boolean fileExist(String url);

    //删除文件
    public boolean fileDelete(String url);
    
    //创建多级目录
    
    public boolean createDirs(String parentDir , String subDir);
    
    //静态分页
	public PageModel findHtmlPage(String hql,  int currentPage,String infoType,int pageSize);
}
